package com.xiaomi.by_new;

public class Main {
    public static void main(String[] args) {
        Order order = new Order();
        order.placeOrder();
        //这种直接使用new关键字创建对象的方式，耦合度高，
        //如果我们想要修改咖啡的名称，就需要修改Order类中的代码，
        //这违反了开闭原则。
        //并且，如果我们要给Coffee添加其他属性，比如价格，
        //那么我们就需要修改Order类中的代码，这也违反了开闭原则。
        //所以，我们应该使用依赖注入的方式来解决这个问题。
        //依赖注入的方式有很多种，比如构造器注入，属性注入，方法注入，
        //我们可以根据实际情况选择合适的方式。
        //构造器注入的方式是最简单的，也是最常用的。
        //我们可以在Order类中添加一个构造器，
        //在构造器中传入Coffee对象，然后在Order类中使用这个对象。
        //这样，我们就可以在Order类中使用Coffee对象了，
        //而不需要在Order类中使用new关键字创建Coffee对象。
        //这样，我们就可以在Order类中使用Coffee对象了
    }
}
